/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.brain.pec.dto;

import com.brain.core.dto.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author Ronald
 */
@Entity
@Table(name = "TPEC_PROCESO")
public class ProcesoPecDto extends ComunDto implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "SEQ_TPEC_PROCESO")
    @TableGenerator(name = "SEQ_TPEC_PROCESO", table = "TCORE_ENTIDAD", pkColumnName = "NOMBRE", valueColumnName = "CORRELATIVO", pkColumnValue = "TPEC_PROCESO", allocationSize = 1)
    private Long id;
    @Basic(optional = false)
    @NotNull
    @Size(max = 200)
    @Column(name = "DESCRIPCION")
    private String descripcion;
    @Size(max = 2000)
    @Column(name = "DETALLE")
    private String detalle;       
    @Size(max = 2000)
    @Column(name = "CAPACIDAD_MIL_SATISFACER")
    private String capacidadMilSatisfacer;
    
    @Size(max = 2000)
    @Column(name = "CAPACIDAD_NO_MIL_SATISFACER")
    private String capacidadNoMilSatisfacer;
    
    @Column(name = "RANKING")
    private BigDecimal ranking;
    
    @Column(name = "PESO_X_FRECUENCIA")
    private BigDecimal pesoFrecuencia;
    
    @Column(name = "PESO_X_TIPO_PROCESO")
    private BigDecimal pesoTipoProceso;
    
    @Column(name = "PESO_X_SECRETO")
    private BigDecimal pesoSecreto;
    
    @Column(name = "PESO_X_NIVEL_PRIORIDAD")
    private BigDecimal pesoNivelPrioridad;
    
    @Column(name = "PESO_X_CUADRANTE")
    private BigDecimal pesoCuadrante;
    
    
    @Column(name = "PESO_X_CATEGORIA")
    private BigDecimal pesoCategoria;
    
    @Column(name = "PES_X_MONTO")
    private BigDecimal pesoMonto;
    
    @Column(name = "IMPACTO_PRESUPUESTAL")
    private BigDecimal impactoPresupuestal;
    
    @Column(name = "DIFICULTAD_ABASTECIMIENTO")
    private Long dificultadAbastecimiento;
    
    @Column(name = "MONTO_ASIGNADO")
    private BigDecimal montoAsignado;
    
    @Column(name = "MONTO_ASIGNADO_SOLES")
    private BigDecimal montoAsignadoSoles;    
       
    @JoinColumn(name = "CATEGORIA", referencedColumnName = "ID")
    @ManyToOne
    private CategoriaPecDto categoriaPecDto;
    
    @JoinColumn(name = "ANALISIS", referencedColumnName = "ID")
    @ManyToOne
    private AnalisisPecDto analisisPecDto;
    
    @JoinColumn(name = "FUENTE_FINANCIAMIENTO", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto fuenteFinanciamientoDto;
    
    @JoinColumn(name = "TIPO_MONEDA", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto tipoMonedaDto;
    
    @JoinColumn(name = "NUCLEO_COMPRA", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto nucleoCompraDto;
    
    @JoinColumn(name = "UNIDAD_ORGANICA", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto unidadOrganicaDto;
    
    @JoinColumn(name = "GRUPO_NACIONAL", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto grupoNacionalDto;
    
    @JoinColumn(name = "GRUPO_OTAN", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto grupoOtanDto;
    
    @JoinColumn(name = "CARACTERISTICA", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto caracteristicaDto;
    
    @JoinColumn(name = "TIEMPO_ABASTECIMIENTO", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto tiempoAbastecimientoDto;
    
    @JoinColumn(name = "CUADRANTE", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto cuadranteDto;
    
    @Column(name = "HOMOLOGABLE")
    private Boolean homologable;
    
    @Column(name = "ESTANDARIZABLE")
    private Boolean estandarilable;
    
    @Column(name = "ANIO_01")
    private BigDecimal anio1;
    
    @Column(name = "ANIO_02")
    private BigDecimal anio2;
    
    @Column(name = "ANIO_03")
    private BigDecimal anio3;
    
    @Column(name = "REPOSICION")
    private Boolean reposicion;
    
    @Column(name = "PIP")
    private Boolean pip;
    
    @JoinColumn(name = "TIPO_PROCESO", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto tipoProcesoDto;
    
    @JoinColumn(name = "TIPO_COMPRA", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto tipoCompraDto;
    
    @JoinColumn(name = "NIVEL_PRIORIDAD", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto nivelPrioridadDto;
    
    @Column(name = "AGENCIA")
    private Boolean agencia;
    
    @Column(name = "IND_SECRETO_MILITAR")
    private Boolean indSecretoMilitar;
    
    @JoinColumn(name = "MODALIDAD", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto modalidadDto;
    
    @JoinColumn(name = "FRECUENCIA", referencedColumnName = "ID")
    @ManyToOne
    private ParametroDto frecuenciaDto;
    
    @NotNull
    @Column(name = "ESTADO")
    private Boolean estado;
    
    @Column(name = "FEC_INI_ACT_PRE_CAR_ENT")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecIniActPreCarEnt;

    @Column(name = "FEC_INI_ACT_PRE_PRO_CAR_AGE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecIniActPreProCarAge;
    
    @Column(name = "TIEMPO_ESPERADO")
    private Long tiempoEsperado;
    
    @Column(name = "FEC_OPT_BUE_PRO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecOptBuePro;
    
    @Column(name = "FEC_OPT_ENT")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecOptEnt;
    
    
    
    
    
    
    public ProcesoPecDto() {
    }

    public ProcesoPecDto(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getDetalle() {
        return detalle;
    }

    public void setDetalle(String detalle) {
        this.detalle = detalle;
    }

    public BigDecimal getImpactoPresupuestal() {
        return impactoPresupuestal;
    }

    public void setImpactoPresupuestal(BigDecimal impactoPresupuestal) {
        this.impactoPresupuestal = impactoPresupuestal;
    }

    public Long getDificultadAbastecimiento() {
        return dificultadAbastecimiento;
    }

    public void setDificultadAbastecimiento(Long dificultadAbastecimiento) {
        this.dificultadAbastecimiento = dificultadAbastecimiento;
    }

    public BigDecimal getMontoAsignado() {
        return montoAsignado;
    }

    public void setMontoAsignado(BigDecimal montoAsignado) {
        this.montoAsignado = montoAsignado;
    }

    public BigDecimal getMontoAsignadoSoles() {
        return montoAsignadoSoles;
    }

    public void setMontoAsignadoSoles(BigDecimal montoAsignadoSoles) {
        this.montoAsignadoSoles = montoAsignadoSoles;
    }
    
    

    public CategoriaPecDto getCategoriaPecDto() {
        return categoriaPecDto;
    }

    public void setCategoriaPecDto(CategoriaPecDto categoriaPecDto) {
        this.categoriaPecDto = categoriaPecDto;
    }

    public Boolean getEstado() {
        return estado;
    }

    public void setEstado(Boolean estado) {
        this.estado = estado;
    }

    public ParametroDto getNucleoCompraDto() {
        return nucleoCompraDto;
    }

    public void setNucleoCompraDto(ParametroDto nucleoCompraDto) {
        this.nucleoCompraDto = nucleoCompraDto;
    }

    public ParametroDto getUnidadOrganicaDto() {
        return unidadOrganicaDto;
    }

    public void setUnidadOrganicaDto(ParametroDto unidadOrganicaDto) {
        this.unidadOrganicaDto = unidadOrganicaDto;
    }

    public ParametroDto getGrupoNacionalDto() {
        return grupoNacionalDto;
    }

    public void setGrupoNacionalDto(ParametroDto grupoNacionalDto) {
        this.grupoNacionalDto = grupoNacionalDto;
    }

    public ParametroDto getGrupoOtanDto() {
        return grupoOtanDto;
    }

    public void setGrupoOtanDto(ParametroDto grupoOtanDto) {
        this.grupoOtanDto = grupoOtanDto;
    }

    public ParametroDto getCaracteristicaDto() {
        return caracteristicaDto;
    }

    public void setCaracteristicaDto(ParametroDto caracteristicaDto) {
        this.caracteristicaDto = caracteristicaDto;
    }

    public ParametroDto getTiempoAbastecimientoDto() {
        return tiempoAbastecimientoDto;
    }

    public void setTiempoAbastecimientoDto(ParametroDto tiempoAbastecimientoDto) {
        this.tiempoAbastecimientoDto = tiempoAbastecimientoDto;
    }

    public ParametroDto getCuadranteDto() {
        return cuadranteDto;
    }

    public void setCuadranteDto(ParametroDto cuadranteDto) {
        this.cuadranteDto = cuadranteDto;
    }

    public Boolean getHomologable() {
        return homologable;
    }

    public void setHomologable(Boolean homologable) {
        this.homologable = homologable;
    }

    public Boolean getEstandarilable() {
        return estandarilable;
    }

    public void setEstandarilable(Boolean estandarilable) {
        this.estandarilable = estandarilable;
    }

    public BigDecimal getAnio1() {
        return anio1;
    }

    public void setAnio1(BigDecimal anio1) {
        this.anio1 = anio1;
    }

    public BigDecimal getAnio2() {
        return anio2;
    }

    public void setAnio2(BigDecimal anio2) {
        this.anio2 = anio2;
    }

    public BigDecimal getAnio3() {
        return anio3;
    }

    public void setAnio3(BigDecimal anio3) {
        this.anio3 = anio3;
    }

    public Boolean getReposicion() {
        return reposicion;
    }

    public void setReposicion(Boolean reposicion) {
        this.reposicion = reposicion;
    }

    public Boolean getPip() {
        return pip;
    }

    public void setPip(Boolean pip) {
        this.pip = pip;
    }

    public ParametroDto getTipoProcesoDto() {
        return tipoProcesoDto;
    }

    public void setTipoProcesoDto(ParametroDto tipoProcesoDto) {
        this.tipoProcesoDto = tipoProcesoDto;
    }

    public ParametroDto getTipoCompraDto() {
        return tipoCompraDto;
    }

    public void setTipoCompraDto(ParametroDto tipoCompraDto) {
        this.tipoCompraDto = tipoCompraDto;
    }

    public ParametroDto getNivelPrioridadDto() {
        return nivelPrioridadDto;
    }

    public void setNivelPrioridadDto(ParametroDto nivelPrioridadDto) {
        this.nivelPrioridadDto = nivelPrioridadDto;
    }

    public Boolean getAgencia() {
        return agencia;
    }

    public void setAgencia(Boolean agencia) {
        this.agencia = agencia;
    }

    public String getCapacidadMilSatisfacer() {
        return capacidadMilSatisfacer;
    }

    public void setCapacidadMilSatisfacer(String capacidadMilSatisfacer) {
        this.capacidadMilSatisfacer = capacidadMilSatisfacer;
    }

    public String getCapacidadNoMilSatisfacer() {
        return capacidadNoMilSatisfacer;
    }

    public void setCapacidadNoMilSatisfacer(String capacidadNoMilSatisfacer) {
        this.capacidadNoMilSatisfacer = capacidadNoMilSatisfacer;
    }

    public ParametroDto getFuenteFinanciamientoDto() {
        return fuenteFinanciamientoDto;
    }

    public void setFuenteFinanciamientoDto(ParametroDto fuenteFinanciamientoDto) {
        this.fuenteFinanciamientoDto = fuenteFinanciamientoDto;
    }

    public ParametroDto getTipoMonedaDto() {
        return tipoMonedaDto;
    }

    public void setTipoMonedaDto(ParametroDto tipoMonedaDto) {
        this.tipoMonedaDto = tipoMonedaDto;
    }

    public AnalisisPecDto getAnalisisPecDto() {
        return analisisPecDto;
    }

    public void setAnalisisPecDto(AnalisisPecDto analisisPecDto) {
        this.analisisPecDto = analisisPecDto;
    }

    public Date getFecIniActPreCarEnt() {
        return fecIniActPreCarEnt;
    }

    public void setFecIniActPreCarEnt(Date fecIniActPreCarEnt) {
        this.fecIniActPreCarEnt = fecIniActPreCarEnt;
    }

    public Date getFecIniActPreProCarAge() {
        return fecIniActPreProCarAge;
    }

    public void setFecIniActPreProCarAge(Date fecIniActPreProCarAge) {
        this.fecIniActPreProCarAge = fecIniActPreProCarAge;
    }

    public Long getTiempoEsperado() {
        return tiempoEsperado;
    }

    public void setTiempoEsperado(Long tiempoEsperado) {
        this.tiempoEsperado = tiempoEsperado;
    }

    public Date getFecOptBuePro() {
        return fecOptBuePro;
    }

    public void setFecOptBuePro(Date fecOptBuePro) {
        this.fecOptBuePro = fecOptBuePro;
    }

    public Date getFecOptEnt() {
        return fecOptEnt;
    }

    public void setFecOptEnt(Date fecOptEnt) {
        this.fecOptEnt = fecOptEnt;
    }

    public Boolean getIndSecretoMilitar() {
        return indSecretoMilitar;
    }

    public void setIndSecretoMilitar(Boolean indSecretoMilitar) {
        this.indSecretoMilitar = indSecretoMilitar;
    }

    public ParametroDto getModalidadDto() {
        return modalidadDto;
    }

    public void setModalidadDto(ParametroDto modalidadDto) {
        this.modalidadDto = modalidadDto;
    }

    public ParametroDto getFrecuenciaDto() {
        return frecuenciaDto;
    }

    public void setFrecuenciaDto(ParametroDto frecuenciaDto) {
        this.frecuenciaDto = frecuenciaDto;
    }

    public BigDecimal getRanking() {
        return ranking;
    }

    public void setRanking(BigDecimal ranking) {
        this.ranking = ranking;
    }
    
    
    
    
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ProcesoPecDto)) {
            return false;
        }
        ProcesoPecDto other = (ProcesoPecDto) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.brain.pec.dto.ProcesoPecDto[ id=" + id + " ]";
    }

    public BigDecimal getPesoFrecuencia() {
        return pesoFrecuencia;
    }

    public void setPesoFrecuencia(BigDecimal pesoFrecuencia) {
        this.pesoFrecuencia = pesoFrecuencia;
    }

    public BigDecimal getPesoTipoProceso() {
        return pesoTipoProceso;
    }

    public void setPesoTipoProceso(BigDecimal pesoTipoProceso) {
        this.pesoTipoProceso = pesoTipoProceso;
    }

    public BigDecimal getPesoSecreto() {
        return pesoSecreto;
    }

    public void setPesoSecreto(BigDecimal pesoSecreto) {
        this.pesoSecreto = pesoSecreto;
    }

    public BigDecimal getPesoNivelPrioridad() {
        return pesoNivelPrioridad;
    }

    public void setPesoNivelPrioridad(BigDecimal pesoNivelPrioridad) {
        this.pesoNivelPrioridad = pesoNivelPrioridad;
    }

    public BigDecimal getPesoCuadrante() {
        return pesoCuadrante;
    }

    public void setPesoCuadrante(BigDecimal pesoCuadrante) {
        this.pesoCuadrante = pesoCuadrante;
    }

    public BigDecimal getPesoCategoria() {
        return pesoCategoria;
    }

    public void setPesoCategoria(BigDecimal pesoCategoria) {
        this.pesoCategoria = pesoCategoria;
    }

    public BigDecimal getPesoMonto() {
        return pesoMonto;
    }

    public void setPesoMonto(BigDecimal pesoMonto) {
        this.pesoMonto = pesoMonto;
    }
    
    
    
}
